﻿CREATE PROCEDURE [Cucina].[SP_Stats_CodaProdotti]
	@PuntoDistribuzioneID int,
	@DeltaEsclusioneMinuti int
AS
	-- Prodotti in coda (non ha fatto check-in, né è stato consegnato)
	SELECT C.DataOra, PC.ProdottoID, COUNT(PC.ProdottiOrdinatiComandaID) AS NProdotti
	FROM Cucina.Comanda C
	INNER JOIN Cucina.ProdottiOrdinatiComanda PC
		ON C.ComandaID = PC.ComandaID
	WHERE C.PuntoDistribuzioneID = @PuntoDistribuzioneID
	AND C.ComandaID NOT IN (SELECT ComandaID FROM Cucina.ComandaCheckIn)
	AND C.ComandaID NOT IN (SELECT ComandaID FROM Cucina.ComandaConsegna)
	AND C.ComandaID NOT IN (SELECT ComandaID FROM Cucina.ComandaDeleted)
	AND C.ComandaID NOT IN (SELECT ComandaID FROM Cucina.ComandaLocked)
	AND C.DataOra > 
		(
			SELECT DATEADD(minute, -@DeltaEsclusioneMinuti, MAX(C.DataOra))
			FROM Cucina.Comanda C
			WHERE C.ComandaID IN (SELECT ComandaID FROM Cucina.ComandaCheckIn)
				OR C.ComandaID IN (SELECT ComandaID FROM Cucina.ComandaConsegna)
			AND C.PuntoDistribuzioneID = @PuntoDistribuzioneID
		)
	GROUP BY C.DataOra, PC.ProdottoID
RETURN 0